#include "beep.h"

void BEEP_init(void)
{
    // 1. RCC配置使能
    RCC->APB2ENR |= (1 << 2);

    // 2. 初始化结构体
    GPIO_InitTypeDef gpio_initStruct;
    // 2.1 设置为推挽输出（Push-Pull Output）
    // 推挽输出可以直接输出高电平（1）或低电平（0）
    // 适用于普通数字信号输出（控制 LED、继电器）
    gpio_initStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    // 2.2 设置传输速度
    // 速度越快，波形越不稳，因此，在满足需求的情况下，选择低速的
    gpio_initStruct.GPIO_Speed = GPIO_Speed_2MHz;
    // 2.3 设置引脚
    gpio_initStruct.GPIO_Pin = BEEP_Pin;

    // 3. 初始化GPIO
    GPIO_Init(BEEP_Port, &gpio_initStruct);

    // 4. 初始设置为输出低，因为蜂鸣器拉高会响
    GPIO_ResetBits(BEEP_Port, BEEP_Pin);
}
void BEEP_on(void)
{
    GPIO_SetBits(BEEP_Port, BEEP_Pin);
}
void BEEP_off(void)
{
    GPIO_ResetBits(BEEP_Port, BEEP_Pin);
}
